package com.hhsjdesign.dynamicui.core.property

import android.view.ViewGroup

/**
 * 组件视图通用属性
 * 这个是视图模块基本数据模型，直接和View交互的
 */
open class ShapeProperty {

    companion object {
        //-1 和父布局高度相等
        const val MATCH_PARENT = ViewGroup.LayoutParams.MATCH_PARENT

        //-2 自适应
        const val WRAP_CONTENT = ViewGroup.LayoutParams.WRAP_CONTENT

        //子视图 app 单位，默认是750单位
        const val SIZE_TYPE_APP_UNIT = 0

        //结合父视图,站父视图的比例
        const val SIZE_TYPE_PARENT_WEIGHT = 1

        //子视图宽高比
        const val SIZE_TYPE_WEIGHT = 2

        //web的单位
        const val SIZE_TYPE_WEB_UNIT = 3
    }

    //比例(占父布局的比例，只在布局中起效果)
    //如果父布局高度固定，且是上下排列，可以起作用
    //如果父布局宽度固定，且是左右排列，起作用

    var widthType: Int = SIZE_TYPE_APP_UNIT

    var heightType: Int = SIZE_TYPE_APP_UNIT

    //宽
    var width: Int = MATCH_PARENT

    //高
    var height: Int = WRAP_CONTENT

    //外间距
    var margin: IntArray = IntArray(4) { 0 }

    //内间距
    var padding: IntArray = IntArray(4) { 0 }

    //圆角大小
    var radius: FloatArray = FloatArray(4) { 0.0f }

    //是否预留状态栏高度，一般只会在顶部导航组件或者可以滚到状态栏下面的第一个组件考虑这个参数
    var statusBarHeight: Int = 0

    //背景颜色
    @androidx.annotation.ColorInt
    var backgroundColor: Int = 0

}